Bom, hoje vou falar sobre o
Google Agenda. Acho que muitas pessoas usam e a grande maioria pelo menos já ouviu falar sobre essa maravilha do Google.
Como muitas empresas utilizam esta agenda, porque ela permite ter compartilhamento de compromissos, eventos e etc. Então, vou mostrar como atualizar sua agenda usando cURL.
Mas antes de começar, vamos precisar baixar duas classes e tratar o formulário para envio.
1º- Vamos baixar as classes:
As duas classes foram encontradas no site abaixo, muito bom por sinal:
2º- Vamos tratar o formulário de cadastro de compromissos:
Usando o
jQuery Datepicker para ajudar na visualização do calendário.
Usar uma função em JavaScript para tratar o horário de forma correta.
3º- Criando o Formulário:
<form action="modulos/agenda/scripts/s_cadastrar.php" method="post">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nome do Evento</td>
<td><input type="text" name="agenda_evento"></td>
</tr>
<tr>
<td>Descrição</td>
<td><textarea name="agenda_descricao"></textarea></td>
</tr>
<tr>
<td>Local</td>
<td><input type="text" name="agenda_local"></td>
</tr>
<tr>
<td>Data Inicial</td>
<td><input type="text" name="agenda_d_inicial" class="campo_data"></td>
</tr>
<tr>
<td>Data Final</td>
<td><input type="text" name="agenda_d_final" class="campo_data"></td>
</tr>
<tr>
<td>Horário Inicial</td>
<td><input type="text" name="agenda_h_inicial" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td>
</tr>
<tr>
<td>Horário Final</td>
<td><input type="text" name="agenda_h_final" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Enviar" class="enviar"></td>
</tr>
</table>
</form>
4º- Montando o HTML completo:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Agendda Google - Renan Martins Pimentel</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!-- Date picker -->
<link type="text/css" href="js/jquery_datepicker/core.css" rel="stylesheet" media="screen">
<link type="text/css" href="js/jquery_datepicker/datepicker.css" rel="stylesheet" media="screen">
<link type="text/css" href="js/jquery_datepicker/theme.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="js/jquery_datepicker/datepicker.js"></script>
<script type="text/javascript" src="js/jquery_datepicker/datepicker-pt-BR.js"></script>
<script type="text/javascript">
//-- Função para exibir calendarios nos campos data jquery do botao de gerar relatorio --//
$(function(){
$(".campo_data").datepicker($.datepicker.regional['pt-BR']);
});
<!-- /Date picker -->
/* Mascara para horario */
function MascaraHora(objeto){
if(objeto.value.length == 2)
objeto.value = objeto.value + ':';
if(objeto.value.length == 4)
objeto.value = objeto.value;
}
</script>
</head>
<body>
<form action="s_cadastrar.php" method="post">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nome do Evento</td>
<td><input type="text" name="agenda_evento"></td>
</tr>
<tr>
<td>Descrição</td>
<td><textarea name="agenda_descricao"></textarea></td>
</tr>
<tr>
<td>Local</td>
<td><input type="text" name="agenda_local" /></td>
</tr>
<tr>
<td>Data Inicial</td>
<td><input type="text" name="agenda_d_inicial" /></td>
</tr>
<tr>
<td>Data Final</td>
<td><input type="text" name="agenda_d_final" /></td>
</tr>
<tr>
<td>Horário Inicial</td>
<td><input type="text" name="agenda_h_inicial" maxlength="5" onkeypress="MascaraHora(this);" /></td>
</tr>
<tr>
<td>Horário Final</td>
<td><input type="text" name="agenda_h_final" maxlength="5" onkeypress="MascaraHora(this);" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Enviar" class="enviar"></td>
</tr>
</table>
</form>
</body>
</html>
5º- Script para envio:
<?php
include ('GoogleCalendarWrapper.php');
$gc = new GoogleCalendarWrapper("seuemail@gmail.com", "suasenha");
//$gc->feed_url = "http://www.google.com/calendar/feeds/untiuro1rs%40group.calendar.google.com/private-6a7151779f99b/basic";
//specify this, if you want to work with not-default calendar (check this: http://code.google.com/apis/gdata/calendar.html#get_feed)
//Função para tratar data que vem com padrão PT-BR pelo jQuery
function formatar_data_contrario($d)
{
$d1 = explode("/", $d);
return $d1[2]."-".$d1[1]."-".$d1[0];
}
// Receber os dados via POST
$titulo = $_POST['agenda_evento'];
$conteudo = $_POST['agenda_descricao'];
$local = $_POST['agenda_local'];
$dia_inicio = formatar_data_contrario($_POST['agenda_d_inicial']);
$dia_fim = formatar_data_contrario($_POST['agenda_d_final']);
$hora_inicio = $_POST['agenda_h_inicial'].":00";
$hora_fim = $_POST['agenda_h_final'].":00";
$s = array();
$s["title"] = "$titulo";
$s["content"] = "$conteudo";
$s["where"] = "$local";
$s["startDay"] = "$dia_inicio";
$s["startTime"] = "$hora_inicio";
$s["endDay"] = "$dia_fim";
$s["endTime"] = "$hora_fim";
if($gc->add_event($s))
echo "Enviado com sucesso!";
else
echo "Não enviou!";
?>
Lembrando um pouco de Lógica, que um evento não pode terminar antes da data de inicio, e o mesmo serve para o horário.
Em um outro tutorial eu explico como visualizar o Google Agenda dentro do seu sistema.
Para fazer download dos arquivos usados acima, clique aqui:
Abraços e até a próxima!